﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.ClienteWs;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.SocialWs;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.EventoWs;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.RelatorioWs;

namespace PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.GUI
{
    public partial class HomeCliente : System.Web.UI.Page
    {
        PubClub_Cliente_WS webServiceCliente = new PubClub_Cliente_WS();
        PubClub_Social_WS webServiceSocial = new PubClub_Social_WS();
        PubClub_Evento_WS webServiceEvento = new PubClub_Evento_WS();
        PubClub_Relatorio_WS webServiceRelatorio = new PubClub_Relatorio_WS();

       

        ObjetoCliente cliente = new ObjetoCliente();
        ObjetoAmizade[] listaMinhasAmizades;
        ObjetoEvento[] listaMeusEventos;
        RankingCliente[] listaMelhoresClientes;
        RankingEstabelecimento[] listaMelhoresEstabelecimentos;
       

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["Cliente"] == null)
            {
                Response.Redirect("Login.aspx");
            }
            else
            {
                cliente = webServiceCliente.GetCliente(Convert.ToInt32(Session["Cliente"]));

            }

            #region definindo tabela de amigos na home

            TableHeaderRow linhaCabecalhoMeusAmigos = new TableHeaderRow();
            TableHeaderCell celulaCabecalhoMeusAmigos = new TableHeaderCell();
            Label labelCabecalhoMeusAmigos = new Label();

            listaMinhasAmizades = webServiceSocial.MinhasAmizades(cliente.ClienteId);

            labelCabecalhoMeusAmigos.Text = "Meus amigos" + "(" + listaMinhasAmizades.Count() + ")";
            celulaCabecalhoMeusAmigos.Controls.Add(labelCabecalhoMeusAmigos);
            linhaCabecalhoMeusAmigos.Cells.Add(celulaCabecalhoMeusAmigos);
            tabelaMeusAmigos.Rows.Add(linhaCabecalhoMeusAmigos);

            for (int i = 0; i <= 4; i++)
            {
                TableRow linhaNomesAmigos = new TableRow();
                TableCell celulaNomesAmigos = new TableCell();
                HyperLink hyperLinkNomesAmigos = new HyperLink();

                if (i > listaMinhasAmizades.Count() - 1)
                {
                    break;
                }
                else
                {
                    if (i % 2 != 0)
                    {
                        linhaNomesAmigos.CssClass = "odd";
                    }

                    ObjetoCliente amigo = webServiceCliente.GetCliente(listaMinhasAmizades[i].ClienteId2);
                    hyperLinkNomesAmigos.Text = amigo.Nome;
                    hyperLinkNomesAmigos.NavigateUrl = "~/GUI/ClienteVerPerfilAmigo.aspx?AmigoId=" + amigo.ClienteId;
                    celulaNomesAmigos.Controls.Add(hyperLinkNomesAmigos);
                    linhaNomesAmigos.Cells.Add(celulaNomesAmigos);
                    tabelaMeusAmigos.Rows.Add(linhaNomesAmigos);
                }

            }

            TableRow linhaVerTodosAmigos = new TableRow();
            TableCell celulaVerTodosAmigos = new TableCell();
            HyperLink hyperLinkVerTodosAmigos = new HyperLink();

            hyperLinkVerTodosAmigos.Text = "Ver todos os meus amigos.";
            hyperLinkVerTodosAmigos.NavigateUrl = "~/GUI/MinhasAmizades.aspx";
            celulaVerTodosAmigos.Controls.Add(hyperLinkVerTodosAmigos);
            linhaVerTodosAmigos.Cells.Add(celulaVerTodosAmigos);
            tabelaMeusAmigos.Rows.Add(linhaVerTodosAmigos);

            #endregion

            #region definindo tabela de eventos na home
            TableHeaderRow linhaCabecalhoMeusEventos = new TableHeaderRow();
            TableHeaderCell celulaCabecalhoMeusEventos = new TableHeaderCell();
            Label labelCabecalhoMeusEventos = new Label();

            listaMeusEventos = webServiceEvento.MeusEventos(cliente.ClienteId, true);

            labelCabecalhoMeusEventos.Text = "Meus eventos(" + listaMeusEventos.Count() + ")";
            celulaCabecalhoMeusEventos.Controls.Add(labelCabecalhoMeusEventos);
            linhaCabecalhoMeusEventos.Cells.Add(celulaCabecalhoMeusEventos);

            tabelaMeusEventos.Rows.Add(linhaCabecalhoMeusEventos);

            for (int i = 0; i <= 4; i++)
            {
                TableRow linhaTitulosEventos = new TableRow();
                TableCell celulaTitulosEventos = new TableCell();
                HyperLink hyperLinkTitulosEventos = new HyperLink();

                if (i > listaMeusEventos.Count() - 1)
                {
                    break;
                }
                else
                {
                    if (i % 2 != 0)
                    {
                        linhaTitulosEventos.CssClass = "odd";
                    }

                    ObjetoEvento evento = webServiceEvento.GetEvento(listaMeusEventos[i].Id);
                    hyperLinkTitulosEventos.Text = evento.Titulo;
                    hyperLinkTitulosEventos.NavigateUrl = "~/GUI/ClienteVerMeusEventos.aspx";
                    celulaTitulosEventos.Controls.Add(hyperLinkTitulosEventos);
                    linhaTitulosEventos.Cells.Add(celulaTitulosEventos);
                    tabelaMeusEventos.Rows.Add(linhaTitulosEventos);
                }

     

            }

            TableRow linhaVerTodosEventos = new TableRow();
            TableCell celulaVerTodosEventos = new TableCell();
            HyperLink hyperLinkVerTodosEventos = new HyperLink();        

            hyperLinkVerTodosEventos.Text = "Ver todos os meus eventos";
            hyperLinkVerTodosEventos.NavigateUrl = "~/GUI/ClienteVerMeusEventos.aspx";
            celulaVerTodosEventos.Controls.Add(hyperLinkVerTodosEventos);
            linhaVerTodosEventos.Cells.Add(celulaVerTodosEventos);
            tabelaMeusEventos.Rows.Add(linhaVerTodosEventos);
            #endregion

            #region definindo tabela de ranking de clientes na home

            TableHeaderRow linhaCabecalhoRankingClientes = new TableHeaderRow();
            TableHeaderCell celulaCabecalhoRankingClientes = new TableHeaderCell();
            Label labelCabecalhoRankingClientes = new Label();

            labelCabecalhoRankingClientes.Text = "Top 3 melhores clientes";
            celulaCabecalhoRankingClientes.Controls.Add(labelCabecalhoRankingClientes);
            linhaCabecalhoRankingClientes.Cells.Add(celulaCabecalhoRankingClientes);

            tabelaRankingClientes.Rows.Add(linhaCabecalhoRankingClientes);

            listaMelhoresClientes = webServiceRelatorio.MelhoresClientes("Doses");

            for (int i = 0; i <= 2; i++)
            {
                TableRow linhaNomesClientes = new TableRow();
                TableCell celulaNomesClientes = new TableCell();
                Label labelMelhoresClientes = new Label();

                if (i > listaMelhoresClientes.Count() - 1)
                {
                    break;
                }
                else
                {
                    if (i % 2 != 0)
                    {
                        linhaNomesClientes.CssClass = "odd";
                    }

                    labelMelhoresClientes.Text = Convert.ToInt32(i+1).ToString() + "º - " + listaMelhoresClientes[i].Nome;
                    celulaNomesClientes.Controls.Add(labelMelhoresClientes);
                    linhaNomesClientes.Cells.Add(celulaNomesClientes);
                    tabelaRankingClientes.Rows.Add(linhaNomesClientes);
                }

            }

            TableRow linhaVerRankingCompleto = new TableRow();
            TableCell celulaVerRankingCompleto = new TableCell();
            HyperLink hyperLinkVerRankingCompleto = new HyperLink();


            hyperLinkVerRankingCompleto.Text = "Ver ranking completo";
            hyperLinkVerRankingCompleto.NavigateUrl = "~/GUI/ClienteVerRankingClientes.aspx";
            celulaVerRankingCompleto.Controls.Add(hyperLinkVerRankingCompleto);
            linhaVerRankingCompleto.Cells.Add(celulaVerRankingCompleto);
            tabelaRankingClientes.Rows.Add(linhaVerRankingCompleto);



            #endregion

            #region definindo tabela de ranking de estabelecimentos na home
            TableHeaderRow linhaCabecalhoRankingEstabelecimento = new TableHeaderRow();
            TableHeaderCell celulaCabecalhoRankingEstabelecimento = new TableHeaderCell();
            Label labelCabecalhoRankingEstabelecimento = new Label();

            labelCabecalhoRankingEstabelecimento.Text = "Top 3 melhores estabelecimentos";
            celulaCabecalhoRankingEstabelecimento.Controls.Add(labelCabecalhoRankingEstabelecimento);
            linhaCabecalhoRankingEstabelecimento.Cells.Add(celulaCabecalhoRankingEstabelecimento);

            tabelaRankingEstabelecimentos.Rows.Add(linhaCabecalhoRankingEstabelecimento);

            listaMelhoresEstabelecimentos = webServiceRelatorio.MelhoresEstabelecimentos();

            for (int i = 0; i <= 2; i++)
            {
                TableRow linhaNomesEstabelecimentos = new TableRow();
                TableCell celulaNomesEstabelecimentos = new TableCell();
                Label labelMelhoresEstabelecimentos = new Label();

                if (i > listaMelhoresEstabelecimentos.Count() - 1)
                {
                    break;
                }
                else
                {
                    if (i % 2 != 0)
                    {
                        linhaNomesEstabelecimentos.CssClass = "odd";
                    }

                    labelMelhoresEstabelecimentos.Text = Convert.ToInt32(i + 1).ToString() + "º - " + listaMelhoresEstabelecimentos[i].Nome;
                    celulaNomesEstabelecimentos.Controls.Add(labelMelhoresEstabelecimentos);
                    linhaNomesEstabelecimentos.Cells.Add(celulaNomesEstabelecimentos);
                    tabelaRankingEstabelecimentos.Rows.Add(linhaNomesEstabelecimentos);
                }

            }

            TableRow linhaVerRankingEstabelecimentoCompleto = new TableRow();
            TableCell celulaVerRankingEstabelecimentoCompleto = new TableCell();
            HyperLink hyperLinkVerEstabelecimentoCompleto = new HyperLink();


            hyperLinkVerEstabelecimentoCompleto.Text = "Ver ranking completo";
            hyperLinkVerEstabelecimentoCompleto.NavigateUrl = "~/GUI/ClienteVerRankingEstabelecimentos.aspx";
            celulaVerRankingEstabelecimentoCompleto.Controls.Add(hyperLinkVerEstabelecimentoCompleto);
            linhaVerRankingEstabelecimentoCompleto.Cells.Add(celulaVerRankingEstabelecimentoCompleto);
            tabelaRankingEstabelecimentos.Rows.Add(linhaVerRankingEstabelecimentoCompleto);

            #endregion




        }
    }
}